package com.example.app.structmodel.adapter.example;


/**
 *  
 * @author lenovo
 *  利用多态的例子来说明适配器模式
 *   假设 客户有一些形状显示,形状中目前有 点，线，正方形
 *   客户需要添加圆形,需要派生出Circle 类，继续编写 display，fill，undisplay方法
 *    但是幸运的是找到了一个Jill编写的XXCircle 类，里面的方法名称如下 displayIt,fillIt,undisplayIt
 *      这个时候就不能直接修改XXCircle 类,但是他的方法与Shape 的方法名称不同，这个时候就可以使用适配器模式 
 *  通过这个适配器，就可以让使用Shape的用户不知道实际使用的是什么形状，对xxCircle 进行了扩充。
 *  Adapter 模式使原本由于接口不兼容而不能一起工作的类可以一起工作。
 */
public abstract class Shape {
	
	private Double location;
	private String color;	
	
	public Double getLocation() {
		return location;
	}
	public void setLocation(Double location) {
		this.location = location;
	}
	public String getColor() {
		return color;
	}
	public void setColor(String color) {
		this.color = color;
	}
	
	
	public Shape() {
		super();
	}
	
	
	public Shape(Double location, String color) {
		super();
		this.location = location;
		this.color = color;
	}
	/**
	 * 填充
	 */
    public abstract void fill();
    /**
           *  显示
     */
    public abstract void display();
    
    /**
     * 隐藏
     */
    public abstract  void undisplay();
    
}
